package xyz.zdsoft.scoring_module.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import xyz.zdsoft.scoring_module.bo.ScoresBo;
import xyz.zdsoft.scoring_module.vo.AdminHomeworkVo;
import xyz.zdsoft.scoring_module.vo.AdminPersonScoreVo;
import xyz.zdsoft.scoring_module.vo.AdminTeamScoreVo;
import xyz.zdsoft.scoring_module.vo.TrainTeacherAndTeamMemberVo;

/**
 * 管理员-综合打分记录业务逻辑处理接口
 * @author 以风
 */
public interface AdminScoreService {
    /**
     * 获取个人综合评分记录
     * @param page 分页参数
     * @param scoresBo 综合评分入参
     * @return 个人综合评分分页信息列表
     */
    IPage<AdminPersonScoreVo> getPersonScorePage(IPage<ScoresBo> page, ScoresBo scoresBo);

    /**
     * 获取实训老师
     * @param courseId 课程id
     * @return 实训老师
     */
    String getTrainTeacher(Integer courseId);

    /**
     * 获取学生作业信息
     * @param page 分页信息
     * @param courseId 课程id
     * @param studentId 学生id
     * @return 学生作业信息
     */
    IPage<AdminHomeworkVo> getStudentHomeWork(IPage<AdminHomeworkVo> page, Integer courseId, Integer studentId);

    /**
     * 获取小组综合评分记录
     * @param page 分页参数
     * @param scoresBo 综合评分入参
     * @return 小组综合评分分页信息列表
     */
    IPage<AdminTeamScoreVo> getTeamScorePage(IPage<ScoresBo> page, ScoresBo scoresBo);

    /**
     * 获取实训老师和小组成员
     * @param courseId 课程id
     * @param teamId 小组id
     * @return 实训老师和小组成员
     */
    TrainTeacherAndTeamMemberVo getTrainTeachersAndTeamMembers(Integer courseId, Integer teamId);

    /**
     * 获取小组作业信息
     * @param page 分页参数
     * @param courseId 课程id
     * @param teamId 小组id
     * @return 小组作业信息
     */
    IPage<AdminHomeworkVo> getTeamHomeWork(IPage<AdminHomeworkVo> page,Integer courseId,Integer teamId);
}
